import { $ } from "./Game";

// 游戏中的地面运行逻辑, 由于被挂载在 runtime 上，所以 this 指向 Ground 本身
export default class Ground extends Laya.Sprite {
    name = "Ground";
    constructor() {
        super();
    }
    RigidBody: Laya.RigidBody;

    // Ground 被挂到舞台上时
    onEnable() {
        // 获取物体的物理属性
        this.RigidBody = this.getComponent(Laya.RigidBody);
        this.changeSpeed();
        this.timer.loop(1, this, this.rerun);
    }
    changeSpeed() {
        // 赋予线性速度
        this.RigidBody.linearVelocity = {
            x: -$.speed,
            y: 0,
        };
    }

    // 将自身的位置迁移到后面，保证连续的地面环境
    rerun() {
        if ($.state === "running") {
            if (this.x <= -this.width) {
                this.pos(this.width, this.y);
                console.log("重置");
            }
        }
    }
}
